【pdf】分析 Java 中反应式编程库的性能和成本
比较结果
知道大家都更喜欢看结果,而不是比较过程
使用 scc 的反应式编程库的代码指标(不包括测试和文档)。
Library | Java 代码行数(LOC) | 文件数量 | Cyclomatic Complexity(CC) | Cyclomatic complexity density (CC/KLOC)[3] |
---|---|---|---|---|
RxJava 3.0.13 | 100313 | 907 | 11750 | 117.13 |
Reactor 3.4.8 | 72858 | 444 | 13358 | 183.34 |
Mutiny 1.0.0 | 21177 | 300 | 2840 | 134.10 |
圈复杂度
圈复杂度(Cyclomatic Complexity):是一个衡量程序控制流复杂度的指标,主要用于评估代码的复杂性和可维护性。 它由Thomas J. McCabe在1976年提出,用于衡量程序中的独立路径数量,即代码中可能的不同执行路径的数量。 值通常是越小越好
Cyclomatic Complexity Density 是圈复杂度(Cyclomatic Complexity, CC)的一个扩展,用于评估代码的复杂度相对于代码量的比率。 它有助于识别代码中复杂度相对于其规模的分布情况,从而更好地理解代码的质量和可维护性。
单一操作符性能比较
越多代表越好
Single Operation Pipelines | |
---|---|
RxJava | Mono |
Reactor | Single, Maybe, Completable |
Mutiny | Uni |
Individual Operators | Operators | |
---|---|---|
RxJava | Single | map |
Reactor | Mono | map |
Mutiny | Uni | chain |
单一直接变换
越多代表越好
多重独立操作符
越多代表越好
流的直接变换
越多代表越好
文本处理
越少代表越好
文本处理2
越少代表越好
网络请求
越少代表越好
网络请求2
越少代表越好